de.cebis.moccabox.io.command
Class TaskCommandContainer

java.lang.Object
  extended by de.cebis.moccabox.io.command.TaskCommandContainer
All Implemented Interfaces:
java.io.Serializable

public class TaskCommandContainer
extends java.lang.Object
implements java.io.Serializable

Behälter und Verwaltungskomponente aller TaskCommands, die ein IClient zu einem bestimmten Zeitpunkt seiner Sitzung aufrufen kann. Der TaskCommandContainer bietet gleichzeitig die Zugriffsoperationen auf die Befehle an.

Die Kommandos sind im Behälter zusammengefasst, da sie encoded werden, bevor sie dargestellt werden können. Vor allem für die Verwendung mit dem HTT-Protokoll ist es wichtig, dass in einem GET die Kommandos nicht in Klartext dargestellt werden, da das zu Manipulationen führen kann. Jedes Kommando wird daher durch ein entsprechendes Ticket repräsentiert, das auch nur eine bestimmte Gültigkeitsdauer hat. Sobald es aufgerufen wurde, wird es invalidiert und kann nicht per copy & paste wiederverwendet werden.

Author:
weichelt - 08.02.2005
See Also:
Serialized Form

Field Summary
static java.lang.String SEPARATOR
          Konstante, die den Separator zwischen Seitenaufruf und Befehl auf der Seite repräsentiert.
 
Constructor Summary
TaskCommandContainer()
          Parameterloser Konstruktor zum Erzeugen eines neuen TaskCommandContainer.
 
Method Summary
 void addPageCall()
          Informieren des TaskCommandContainer, dass ein neuer Seitenaufruf durch den IClient erfolgt ist.
 void clearTaskCommands()
          Entfernen aller registrierten TaskCommand aus dem Speicher.
 int getNrOfPageCalls()
          Zurückgeben der Anzahl der Seitenaufrufe durch den IClient.
 int getNrOfTaskCommands()
          Zurückliefern der Anzahl an registrierten Befehlen innerhalb des TaskCommandContainer.
 TaskCommand getTaskCommand(java.lang.String id)
          Zurückgeben des TaskCommand, das der übergebenen Ticket-ID entspricht.
 void registerTaskCommand(TaskCommand t)
          Registrieren eines neuen TaskCommand.
 void registerTaskCommands(ITaskCommandCollection source)
          Registrieren einer Menge von TaskCommands, die von einem Objekt, das das Interface ITaskCommandCollection implementiert, zur Verfügung gestellt wird.
 void removeTaskCommand(java.lang.String id)
          Entfernen des TaskCommand, das der übergebenen Ticket-ID entspricht.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SEPARATOR

public static final java.lang.String SEPARATOR
Konstante, die den Separator zwischen Seitenaufruf und Befehl auf der Seite repräsentiert. Wird zur Ticket-Erstellung benötigt.

See Also:
Constant Field Values
Constructor Detail

TaskCommandContainer

public TaskCommandContainer()
Parameterloser Konstruktor zum Erzeugen eines neuen TaskCommandContainer.

Method Detail

addPageCall

public void addPageCall()
Informieren des TaskCommandContainer, dass ein neuer Seitenaufruf durch den IClient erfolgt ist. Der interne Zähler wird um eins erhöht, der Zähler der Kommandos auf der Seite wird auf 0 zurückgesetzt.


getNrOfPageCalls

public int getNrOfPageCalls()
Zurückgeben der Anzahl der Seitenaufrufe durch den IClient.

Returns:
Anzahl der Seitenaufrufe.

registerTaskCommands

public void registerTaskCommands(ITaskCommandCollection source)
Registrieren einer Menge von TaskCommands, die von einem Objekt, das das Interface ITaskCommandCollection implementiert, zur Verfügung gestellt wird.

Parameters:
source - Quelle, die die zu registrierenden Befehle enthält.

registerTaskCommand

public void registerTaskCommand(TaskCommand t)
Registrieren eines neuen TaskCommand. Dem Befehl wird ein korrespondierendes Ticket zugewiesen, unter dem er später wieder refenziert und zurückgegeben werden kann.

Parameters:
t - Befehl, der registriert werden soll.

getTaskCommand

public TaskCommand getTaskCommand(java.lang.String id)
                           throws InvalidCommandException
Zurückgeben des TaskCommand, das der übergebenen Ticket-ID entspricht. Ist für die übergebene ID kein TaskCommand hinterlegt, so wird eine Fehlermeldung geworfen.

Parameters:
id - Identifikator des TaskCommand entsprechend der vorher vergebenen ID.
Returns:
Das korrespondierende TaskCommand.
Throws:
InvalidCommandException - Fehler, weil entweder keine TaskCommands hinterlegt sind oder das entsprechende TaskCommand bereits ungültig geworden ist. Ungültig wird ein Befehl, wenn er bereits abgerufen wurde (das zugehörige Ticket wurde entwertet) oder der Aufruf liegt schon zu lange zurück, so dass alles Befehle des Aufrufs aus dem Speicher entfernt wurden.

removeTaskCommand

public void removeTaskCommand(java.lang.String id)
                       throws InvalidCommandException
Entfernen des TaskCommand, das der übergebenen Ticket-ID entspricht. Ist für die übergebene ID kein TaskCommand hinterlegt, so wird eine Fehlermeldung geworfen.

Parameters:
id - Identifikator des TaskCommand entsprechend der vorher vergebenen ID.
Throws:
InvalidCommandException - Fehler, weil entweder keine TaskCommands hinterlegt sind oder das entsprechende TaskCommand bereits ungültig geworden ist. Ungültig wird ein Befehl, wenn er bereits abgerufen wurde (das zugehörige Ticket wurde entwertet) oder der Aufruf liegt schon zu lange zurück, so dass alles Befehle des Aufrufs aus dem Speicher entfernt wurden.

getNrOfTaskCommands

public int getNrOfTaskCommands()
Zurückliefern der Anzahl an registrierten Befehlen innerhalb des TaskCommandContainer.

Returns:
Zahl der registrierten TaskCommands.

clearTaskCommands

public void clearTaskCommands()
Entfernen aller registrierten TaskCommand aus dem Speicher.